package model.tokens;

import java.util.Deque;
import java.util.Queue;
import java.util.Stack;

import model.semantics.Node;

/**
 * Represents a token that can be converted into a node.
 */

public abstract class NodeToken<T> extends Token<T> {

    public NodeToken(TokenConstructorArguments<T> args) {
        super(args);
    }

    /**
     * Make a new instance of an operation node.
     * 
     * @param nodes
     *            the current stack of operation nodes.
     * @return a new operation node.
     */
    public abstract Node<T> makeNewInstance(Deque<Node<T>> nodes);
}
